As computer programs grow more complex, extensible, and connected, it becomes increasingly difficult for users to understand what is causing their machines to behave differently. Network connectivity allows programs to be automatically downloaded and installed. Browser extensibility allows components to be hooked into the browser in sophisticated ways that change users' browsing experience. Complexity of the programs and their interactions are often beyond users' comprehension and makes troubleshooting a very difficult task.
Today, problems due to unwanted software installations through “drive-by downloads” are becoming a top generator of support calls. Such software can be downloaded and installed without any consent from the user, if she visits a rogue Web site with the browser security setting set too low. Or, a user may unintentionally give consent to such downloads when she installs other free software packages, obtains electronic coupons, or clicks on the “OK” button without reading the fine print.
Unwanted software installations can cause a wide range of problems. “Ad-ware” that generates pop-up ads and browser plug-ins that add toolbars/menu items or replace the default search engines can be quite annoying. “Spyware” that monitors users' browsing patterns and/or occasionally hijacks users' browser sessions to redirect them to sponsor sites raises privacy concerns; such concerns become even more serious when “snoopware” is used to record keystrokes and screenshots. Finally, viruses, worms, or backdoors may be installed to cause significant security issues.
Software patching is another major source of changes to users' machines. Several serious outbreaks of viruses and worms that exploited security vulnerabilities of operating systems software have demonstrated the importance of timely application of security patches. One of the reasons that users delay applying patches is that they are concerned about the patched programs potentially breaking their existing applications. This is particularly true in the corporate desktop environments and in the data center environments running mission-critical server applications. When an application stops working after a few patches are applied, it is in general very difficult to determine if any of the patches are at fault.
Incomplete removal of software packages is another common problem that causes user frustration. Due to the non-transactional nature of most uninstallation programs, a subset of components may be left over from a supposedly removed package and cause inconsistency or confusion. Some spyware may intentionally leave components running, even after uninstallation, so that they can continue to monitor user activities. In general, it is difficult for the users to determine if there are any left-over components from an unclean application removal still running on their machines.
PC users on the family of MICROSOFT WINDOWS operating systems currently use an Add/Remove Programs (ARP) applet inside the Control Panel to find out what software are installed on their machines and to remove individual software packages. Today's ARP has at least four problems: (1) it does not provide the option of sorting the software packages according to their installation dates; (2) it displays only those “good-citizen” software packages that do not mind letting the users know that they are installed and provide a “Remove” option; (3) it relies on the set of sub-keys under a “Uninstall” Registry key. If a program's “Remove” option simply deletes its key under the “Uninstall” key and leaves its actual software installed and running, the APR applet will incorrectly show to the user that the software has been removed; (4) a software package might have been installed by another software and not installed directly by the user; so the user does not recognize the former. Today's ARP applet does not inform the user of such linkage.